#!/usr/local/bin/python
# -*- coding: utf-8 -*-
from django.db import models
from assoce.core.models import *
from django.contrib.contenttypes.models import ContentType


class TypeEnum(models.Model):
    u"""Type énumération.
    
    Permet de définir dynamiquement une énumération pour
    un content type.
    Utilisé pour les paramères activités et membres
    """
    nom = models.CharField(max_length=100, verbose_name='Nom du type')
    actif = models.BooleanField(default=True)
    contenttype = models.ForeignKey(ContentType, verbose_name=u'Modèle',
                                    limit_choices_to = {'app_label': 'mail'},
                                    help_text='Sélectionner une classe possédant un attribut TypeEnum')
    def __unicode__(self):
        return self.nom
    
    class Meta:
        verbose_name = 'Type'
        verbose_name_plural = 'Types'


class ParamActiviteDef(models.Model):
    name = models.CharField(max_length=50, verbose_name='nom')
    def __unicode__(self):
        return self.name

class ParamMembreDef(models.Model):
    name = models.CharField(max_length=50, verbose_name='nom')
    def __unicode__(self):
        return self.name

class ParamActivite(models.Model):
    activite = models.ForeignKey(Activite, verbose_name='Activité')
    nom = models.ForeignKey(ParamActiviteDef, verbose_name='paramètre')
    value = models.CharField(max_length=50, verbose_name='valeur')

class ParamMembre(models.Model):
    membre = models.ForeignKey(Membre, verbose_name='Membre')
    nom = models.ForeignKey(ParamMembreDef, verbose_name='paramètre')
    value = models.CharField(max_length=50, verbose_name='valeur')

class MailTemplate(models.Model):
    TYPE_CHOICES = (
                      ('R','Retard retour'),
                      ('D','Disponibilité ressource'),
                     )
    type = models.CharField(max_length=1, choices=TYPE_CHOICES)
    actif = models.BooleanField()
    user = models.ForeignKey(User, related_name='notificationsout', null=True, blank=True, verbose_name='utilisateur à notifier')
    group = models.ForeignKey(Group, related_name='notificationsout', null=True, blank=True, verbose_name='groupe à notifier')
    sujet = models.CharField(max_length=100, default='{{ ACTIVITE }} {{TYPE}}')
    message = models.TextField(default='insérer le template du message')
    class Meta:
        verbose_name = 'Mail sortant'
        verbose_name_plural = 'Mails sortants'
